/*
 * @Descripttion:
 * @version:
 * @Author: hutao
 * @Date: 2023-04-23 14:50:21
 * @LastEditors: hutao
 * @LastEditTime: 2023-08-23 10:40:58
 */
/* eslint-disable @typescript-eslint/no-var-requires */
const CompressionPlugin = require("compression-webpack-plugin");
const baseConfig = require("./public/baseConfig.json");
const path = require("path");
const webpack = require('webpack')
const Timestamp = new Date().getTime(); //当前时间为了防止打包缓存不刷新，所以给每个js文件都加一个时间戳
// const I18nPlugin = require("./build/i18n-plugin");
module.exports = {
  parallel: false,
 
  publicPath: baseConfig.baseUrl,
  productionSourceMap: process.env.NODE_ENV === "production" ? false : true,
  devServer: {
    proxy: "http://192.168.3.157"
    //proxy: "http://test.dev.com",
    // {
    //   // 公共数据
    //   "^/publicData": {
    //     target: "http://192.168.3.252", // 设置调用接口的域名和端口号
    //     // ws: true, // 是否启用websocket代理
    //     changeOrigin: true, // 是否跨域
    //     pathRewrite: {}
    //   },
    //   // 授权
    //   "^/oauth2": {
    //     target: "http://192.168.3.252", // 设置调用接口的域名和端口号
    //     // ws: true, // 是否启用websocket代理
    //     changeOrigin: true, // 是否跨域
    //     pathRewrite: {}
    //   },
    //   // 授权组件
    //   "^/auth": {
    //     target: "http://192.168.3.252", // 设置调用接口的域名和端口号
    //     // ws: true, // 是否启用websocket代理
    //     changeOrigin: true, // 是否跨域
    //     pathRewrite: {}
    //   }
    // }
  },
 
  configureWebpack: (config) => {
    
    if (process.env.NODE_ENV === "production") {
      return {
        output: {
          // 输出重构  打包编译后的 文件名称  【模块名称.时间戳】
          filename: `js/[name].${Timestamp}.js`,
          chunkFilename: `js/[name].${Timestamp}.js`,
        }, 
        plugins: [
          // new I18nPlugin(),
          new CompressionPlugin({
            test: /\.js$|\.html$|\.css/, // 匹配文件名
            threshold: 10240, // 对超过10K的数据进行压缩
            deleteOriginalAssets: false, // 是否删除源文件
          }),
          new webpack.ProvidePlugin({
            'window.Quill': 'quill/dist/quill.js',
            'Quill': 'quill/dist/quill.js'
          })
        ],
      };
    }
    return {
      plugins: [
        new webpack.ProvidePlugin({
          'window.Quill': 'quill/dist/quill.js',
          'Quill': 'quill/dist/quill.js'
        })
      ],
    };
  },
};
